// Copyright (C) 2022 即时通讯网(52im.net) & Jack Jiang.
// The RainbowChat Project. All rights reserved.
//
// 【本产品为著作权产品，合法授权后请放心使用，禁止外传！】
// 【本次授权给：<广西木子科技有限公司>，授权编号：<NT220402151538>，代码指纹：<A.648883738.885>，技术对接人微信：<ID: Lingmuziyi>】
// 【授权寄送：<收件：李先生、地址：南宁市科园西十路11号国电智能大厦1101F、电话：17736659550、邮箱：yingshashou@vip.qq.com>】
//
// 【本系列产品在国家版权局的著作权登记信息如下】：
// 1）国家版权局登记名(简称)和权证号：RainbowChat    （证书号：软著登字第1220494号、登记号：2016SR041877）
// 2）国家版权局登记名(简称)和权证号：RainbowChat-Web（证书号：软著登字第3743440号、登记号：2019SR0322683）
// 3）国家版权局登记名(简称)和权证号：RainbowAV      （证书号：软著登字第2262004号、登记号：2017SR676720）
// 4）国家版权局登记名(简称)和权证号：MobileIMSDK-Web（证书号：软著登字第2262073号、登记号：2017SR676789）
// 5）国家版权局登记名(简称)和权证号：MobileIMSDK    （证书号：软著登字第1220581号、登记号：2016SR041964）
// * 著作权所有人：江顺/苏州网际时代信息科技有限公司
//
// 【违法或违规使用投诉和举报方式】：
// 联系邮件：jack.jiang@52im.net
// 联系微信：hellojackjiang
// 联系QQ号：413980957
// 授权说明：http://www.52im.net/thread-1115-1-1.html
// 官方社区：http://www.52im.net
package com.x52im.rainbowchat.im.dto;

/**
 * 指令body：陌生人聊天（临时聊天）消息的数据内容封装类（原TempChatMsgDTO）.
 * <p>
 * 即聊天数据从MobileIMSDK底层发送时，会将本对象转JSON字串后，作为
 * Protocal的dataContent数据进行传输。
 *
 * @author Jack Jiang(http://www.52im.net/space-uid-1.html)
 * @version 1.0
 */
public class MsgBody4Guest extends MsgBodyRoot {
    /**
     * 消息发送人的昵称
     */
    protected String nickName = null;

    // 非持久化字段：本字段不对应于DB中的任何字段，仅用于客户端使用
    // 用途描述：目前用于APP首页系统消息栏里收到临时消息时，从服务端下载了
    // 			用户头像后，把服务端同时返回的该用户头像文件名存起来（以便
    //			查找客户端的本地缓存时使用）。为什么在在此时存起来呢？因为
    //			临时聊天的用户之间没有把发送人存放于服务端的头像文件名传过
    //			去(可以传，但每1条消息都得传就太订烦了)，为了从服务端取到用
    //			户头像后下次只需要从SD卡缓存中取，所以就有了本属性用于保存它
    //			了仅此而已
    protected transient String userAvatarFileName = null;

    public MsgBody4Guest() {
        super();
        this.setCy(MsgBody4Guest.CHAT_TYPE_GUEST$CHAT);
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getUserAvatarFileName() {
        return userAvatarFileName;
    }

    public void setUserAvatarFileName(String userAvatarFileName) {
        this.userAvatarFileName = userAvatarFileName;
    }

    @Override
    public String toString() {
        return "[user_uid=" + f + ",nickName=" + nickName
//				+",user_mail="+user_mail
                + ",friend_user_uid=" + t
//				+",friendUserMail="+friendUserMail
                + ",msg_type=" + ty
                + ",msg_content=" + m
//				+",msg_content2="+msg_content2
//				+", history_time2="+history_time2
                + "]";
    }

    /**
     * 构造陌生人聊天（临时聊天）消息协议体的DTO对象.
     *
     * @param msgType     聊天消息类型
     * @param srcUserUid  发送方的uid
     * @param srcNickName 发送方的昵称
     * @param friendUid   要发送到的用户id
     * @param msg         消息内容，纯文本字串，可能是聊天文字、图片文件名或语音文件名等，但一定不是JSON字串
     * @return
     */
    public static MsgBody4Guest constructGuestChatMsgBody(int msgType
            , String srcUserUid, String srcNickName, String friendUid, String msg) {
        MsgBody4Guest tcmd = new MsgBody4Guest();
        tcmd.setF(srcUserUid);
        tcmd.setNickName(srcNickName);
        tcmd.setT(friendUid);
        tcmd.setTy(msgType);
        tcmd.setM(msg);
//		tcmd.setCy(MsgBody4Guest.CHAT_TYPE_GUEST$CHAT);

        return tcmd;
    }

}
